package ar.com.ctrln.view.sistema.login.component;

import java.util.Date;

import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Menu;
import org.zkoss.zul.Menuitem;
import org.zkoss.zul.Timer;
import org.zkoss.zul.Vlayout;
import org.zkoss.zul.Window;

import ar.com.ctrln.persistence.model.sistema.cuentas.Usuario;

public class HeaderController extends SelectorComposer<Component> {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1908024525442908715L;

	@Wire("#vlayHeader")
	Vlayout vlayer;

	@Wire("#userMenu")
	Menu userMenu;

	@Wire("#timer")
	Timer timer;

	@Wire("#fechaBtn")
	Menuitem fechaBtn;

	@Wire("#relojBtn")
	Menuitem relojBtn;

	@Wire("#cerrarSesionBtn")
	Menuitem cerrarSesion;

	@Wire("#wSalir")
	Window wSalir;

	@Override
	public void doAfterCompose(Component comp) throws Exception {
		// TODO Auto-generated method stub
		super.doAfterCompose(comp);
		fechaBtn.setLabel(getDateFecha());
		relojBtn.setLabel(getDateHora());
		timer.setDelay(1000);
		timer.setRepeats(true);
		userMenu.setLabel(((Usuario) org.springframework.security.core.context.SecurityContextHolder
				.getContext().getAuthentication().getPrincipal()).getNombre());
		Events.echoEvent("onTimerEvent", timer, null);
	}

	public String getDateHora() {
		java.text.DateFormat dateFormatHora = new java.text.SimpleDateFormat(
				"HH:mm:ss");
		String dateHora = dateFormatHora.format(new Date());
		return dateHora;
	}

	public String getDateFecha() {
		java.text.DateFormat dateFormatFecha = new java.text.SimpleDateFormat(
				"dd/MMMM 	/yyyy");
		String dateFecha = dateFormatFecha.format(new Date());
		return dateFecha;
	}

	@Listen("onTimerEvent = #timer")
	public void procesandoSegundos() {
		timer.start();
	}

	@Listen("onTimer = #timer")
	public void actualizandoHora() {
		relojBtn.setLabel(" " + getDateHora());
	}

	@Listen("onClick = #cerrarSesionBtn")
	public void showWindowsLogOut() {
		if (!wSalir.isVisible())
			wSalir.setVisible(true);
		wSalir.doHighlighted();
	}

}
